/***************************************************************************/
/*  Global (public) headers look like this                                 */
/*                                                                         */
/*  foo()                                                                  */
/*  Parameters: description of each passed datum                           */
/*  Returns: description of return value & significance                    */
/*  Side effects: complete details                                         */
/*  Notes: extra info                                                      */
/***************************************************************************/

/*
** Static (local) headers look like this
**
** Brief description
*/

int foo(void)   /* use ANSI prototypes on every compiler that supports 'em */
{
        int local1, local2;     /* local variable declarations are always
                                   followed by a blank line                */

        do_stuff();
        if (bar(local1))
        {       /* long comments here *//* this lines up with -----------+ */
                char *local3;           /* autos declared close to use   | */
                                        /*                               | */
                do_more_stuff();        /* (everything else indented)    | */
                local2 = strlen(local3);/*                               | */
        }                               /* this <------------------------+ */
        else    local2 = fubar();       /* using tab >= 6, else's line up  */
        return local2;
}                               /* no question where functions end!        */ 
